/*
 * structs.h
 *
 *  Created on: Dec 11, 2011
 *      Author: armandoperico
 */

#ifndef STRUCTS_H_
#define STRUCTS_H_

#include "vec3f.h"
#include "../core/cell.h"


struct Ball {
	Vec3f v; //Velocity
	Vec3f pos; //Position
	float r; //Radius
	Vec3f color;
	float alpha;
};


// gluLookAt(dirX, dirY, dirZ, Cx, Cy, Cz, 0.0f, 1.0f,  0.0f);
struct CameraAngle {
	float pos_x;
	float pos_y;
	float pos_z;
	float tau_x;
	float tau_y;
	float tau_z;
};

// used to compair for collisions pairs of Cells
// used also to execute merging
struct CellPair {
	Cell* cell1;
	Cell* cell2;
};

enum Wall {WALL_LEFT, WALL_RIGHT, WALL_FAR, WALL_NEAR, WALL_TOP, WALL_BOTTOM};

//Stores a Cell and a wall
struct CellWallPair {
	Cell* cell;
	Wall wall;
};

// Progress of predator cell eating prey cell
struct EatAnimation {
  Cell *predator;
  Cell *prey;
  float progress;
};

#endif /* STRUCTS_H_ */
